/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface GetLiveGetAlbumListRes {
  code: string; // 返回编码，0成功
  msg: string; // 返回消息
  data: {
    total: number;
    list: Array<{
      albumId: number; // 专辑ID
      albumName: string; // 专辑名称
      albumDesc: string; // 专辑简介
      photoPath: string; // 专辑封面图路径
      singerList: Array<{
        singerId: number; // 歌手ID
        singerName: string; // 歌手名称
      }>;
      status: number; // 0 隐藏 1 上架 2 停用
      trackList: Array<{
        trackId: number; // 歌曲ID
        albumId: number; // 所属专辑ID
        albumName: string; // 所属专辑名
        qqMid: string; // Q音MID
        trackName: string; // 歌曲名称
        albumPhotoPath: string; // 所属专辑封面
        singerList: Array<{
          singerId: number; // 歌手ID
          singerName: string; // 歌手名称
        }>;
        status: number; // 0 隐藏 1 上架 2 停用
        paymentStatus: number; // 0 免费 1 付费
        cpStatus: number; // -1 唱片公司确认无版权 0无版权 1 唱片公司确认有版权
      }>;
    }>;
  };
}

/**
 * 查询专辑列表
 */
export async function getLiveGetAlbumList(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetLiveGetAlbumListRes> {
  return request(data, {
    url: '/live/getAlbumList',
    method: 'get',
    ...config,
  });
}

export interface GetLiveGetTrackListRes {
  code: string; // 返回编码，0成功
  msg: string; // 返回消息
  data: {
    total: number;
    list: Array<{
      trackId: number; // 歌曲ID
      albumId: number; // 所属专辑ID
      albumName: string; // 所属专辑名
      qqMid: string; // Q音MID
      trackName: string; // 歌曲名
      albumPhotoPath: string; // 所属专辑封面
      singerList: Array<{
        singerId: number; // 歌手ID
        singerName: string; // 歌手名称
      }>;
      status: number; // 0 隐藏 1 上架 2 停用
      paymentStatus: number; // 0 免费 1 付费
      cpStatus: number; // -1 唱片公司确认无版权 0 无版权 1 唱片公司确认有版权
    }>;
  };
}

/**
 * 查询歌曲列表
 */
export async function getLiveGetTrackList(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetLiveGetTrackListRes> {
  return request(data, {
    url: '/live/getTrackList',
    method: 'get',
    ...config,
  });
}

export interface GetLiveGetMvListRes {
  code: string; // 返回编码，0成功
  msg: string; // 返回消息
  data: {
    total: number;
    list: Array<{
      mvId: number; // MV ID
      qqMid: string; // Q音MID
      mvName: string; // MV名称
      mvDesc: string; // MV简介
      photoPath: string; // MV封面图路径
      singerList: Array<{
        singerId: number; // 歌手ID
        singerName: string; // 歌手名称
      }>;
      status: number; // 0 隐藏 1 上架 2 停用
      paymentStatus: number; // 0 免费1 付费
      cpStatus: number; // -1 唱片公司确认无版权 0无版权1 唱片公司确认有版权
    }>;
  };
}

/**
 * 查询MV列表
 */
export async function getLiveGetMvList(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetLiveGetMvListRes> {
  return request(data, {
    url: '/live/getMvList',
    method: 'get',
    ...config,
  });
}

export interface GetLiveGetAlbumByIdRes {
  code: string; // 返回编码，0成功
  msg: string; // 返回消息
  data: {
    albumId: number; // 专辑ID
    albumName: string; // 专辑名称
    albumDesc: string; // 专辑简介
    photoPath: string; // 专辑封面图路径
    singerList: Array<{
      singerId: number; // 歌手ID
      singerName: string; // 歌手名称
    }>;
    status: number; // 0 隐藏1 上架      2 停用
    trackList: Array<{
      trackId: number; // 歌曲ID
      albumId: number; // 所属专辑ID
      albumName: string; // 所属专辑名
      qqMid: string; // Q音MID
      trackName: string; // 歌曲名称
      albumPhotoPath: string; // 所属专辑封面
      singerList: Array<{
        singerId: number; // 歌手ID
        singerName: string; // 歌手名称
      }>;
      status: number; // 0 隐藏1 上架2 停用
      paymentStatus: string; // 0 免费1 付费
      cpStatus: string; // -1 唱片公司确认无版权 0无版权1 唱片公司确认有版权
    }>;
  };
}

/**
 * 查询单个专辑
 */
export async function getLiveGetAlbumById(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetLiveGetAlbumByIdRes> {
  return request(data, {
    url: '/live/getAlbumById',
    method: 'get',
    ...config,
  });
}

export interface GetLiveGetTrackByIdRes {
  code: string; // 返回编码，0成功
  msg: string; // 返回消息
  data: {
    trackId: number; // 歌曲ID
    albumId: number; // 所属专辑ID
    albumName: string; // 所属专辑名
    qqMid: string; // Q音MID
    trackName: string; // 歌曲名称
    albumPhotoPath: string; // 所属专辑封面
    singerList: Array<{
      singerId: number; // 歌手ID
      singerName: string; // 歌手名称
    }>;
    status: number; // 0 隐藏1 上架2 停用
    paymentStatus: number; // 0 免费1 付费
    cpStatus: number; // -1 唱片公司确认无版权 0无版权1 唱片公司确认有版权
  };
}

/**
 * 查询单个歌曲
 */
export async function getLiveGetTrackById(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetLiveGetTrackByIdRes> {
  return request(data, {
    url: '/live/getTrackById',
    method: 'get',
    ...config,
  });
}

export interface GetLiveGetMvByIdRes {
  code: string; // 返回编码，0成功
  msg: string; // 返回消息
  data: {
    mvId: number; // MV ID
    qqMid: string; // Q音MID
    mvName: string; // MV名称
    mvDesc: string; // mv简介
    photoPath: string; // MV图片路径
    singerList: Array<{
      singerId: number; // 歌手ID
      singerName: string; // 歌手名称
    }>;
    status: number; // 0 隐藏1 上架2 停用
    paymentStatus: number; // 0 免费1 付费
    cpStatus: number; // -1 唱片公司确认无版权 0无版权1 唱片公司确认有版权
  };
}

/**
 * 查询单个MV
 */
export async function getLiveGetMvById(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetLiveGetMvByIdRes> {
  return request(data, {
    url: '/live/getMvById',
    method: 'get',
    ...config,
  });
}
